package com.efast.dmom.mgmt.service.les;

import java.util.List;
import java.util.Map;

import com.efast.dmom.mgmt.entity.les.TtMmKanbanscanMri;
import com.efast.dmom.mgmt.utils.Assist;
import org.apache.ibatis.annotations.Param;

public interface TtMmKanbanscanMriService {
	/**
	 * 获得TtMmKanbanscanMri数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getTtMmKanbanscanMriRowCount(Assist assist);

	/**
	 * 获得TtMmKanbanscanMri数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<TtMmKanbanscanMri> selectTtMmKanbanscanMri(Assist assist);

	/**
	 * 获得一个TtMmKanbanscanMri对象,以参数TtMmKanbanscanMri对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	TtMmKanbanscanMri selectTtMmKanbanscanMriByObj(TtMmKanbanscanMri obj);

	/**
	 * 通过TtMmKanbanscanMri的id获得TtMmKanbanscanMri对象
	 * 
	 * @param id
	 * @return
	 */
	TtMmKanbanscanMri selectTtMmKanbanscanMriById(Integer id);

	/**
	 * 插入TtMmKanbanscanMri到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertTtMmKanbanscanMri(TtMmKanbanscanMri value);

	/**
	 * 插入TtMmKanbanscanMri中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNonEmptyTtMmKanbanscanMri(TtMmKanbanscanMri value);

	/**
	 * 批量插入TtMmKanbanscanMri到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertTtMmKanbanscanMriByBatch(List<TtMmKanbanscanMri> value);

	/**
	 * 通过TtMmKanbanscanMri的id删除TtMmKanbanscanMri
	 * 
	 * @param id
	 * @return
	 */
	int deleteTtMmKanbanscanMriById(Integer id);

	/**
	 * 通过辅助工具Assist的条件删除TtMmKanbanscanMri
	 * 
	 * @param assist
	 * @return
	 */
	int deleteTtMmKanbanscanMri(Assist assist);

	/**
	 * 通过TtMmKanbanscanMri的id更新TtMmKanbanscanMri中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateTtMmKanbanscanMriById(TtMmKanbanscanMri enti);

	/**
	 * 通过辅助工具Assist的条件更新TtMmKanbanscanMri中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateTtMmKanbanscanMri(TtMmKanbanscanMri value, Assist assist);

	/**
	 * 通过TtMmKanbanscanMri的id更新TtMmKanbanscanMri中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNonEmptyTtMmKanbanscanMriById(TtMmKanbanscanMri enti);

	/**
	 * 通过辅助工具Assist的条件更新TtMmKanbanscanMri中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNonEmptyTtMmKanbanscanMri(TtMmKanbanscanMri value, Assist assist);

	void confirmBill(List<Map<String, Object>> ttMmManualMriEmptyBean);
	/**
	 * 扫描看板卡号查询相关的数据，并且插入到tt_mm_kanbanscan_mri
	 *
	 * @param ttMmKanbanscanMri
	 *            ttMmKanbanscanMri
	 * @return TtMmKanbanscanMri
	 */
	TtMmKanbanscanMri selectReplenishmentTtMmManualMriByObj(
			@Param("ttMmKanbanscanMri") TtMmKanbanscanMri ttMmKanbanscanMri);

}